'''

'''
from SMS import fileManager

user_name = ''

"""
程序中保存所有学生：一个列表中有多个字典，每个字典有4个键值对，
user_msg:
{
    'all_student':[
    {'name':1,'age':2,'tel':3,'sid':1}
    ],
    'num':0  当前账号添加学生的个数
}
数据持久化：将数据保存到json文件
方案一：所有用户的学生信息保存在一个文件中
方案二：用户创建一个自己的用户名文件
"""


def add_student():
    # 读本地文件数据
    user_msg = fileManager.read_json_file(user_name + '.json')
    if not user_msg:
        user_msg = {}
    while 1:
        # 输入学生信息
        name = input('name:')
        age = input('age:')
        tel = input('tel:')
        # 学号
        num = user_msg.get('num', 0)
        num += 1
        user_msg['num'] = num  # 更新人数
        sid = str(num).zfill(3)
        # 创建学生
        stu = {'name': name, 'age': int(age), 'tel': tel, 'sid': sid}
        # 添加学生
        all_student = user_msg.get('all_student', [])
        all_student.append(stu)
        user_msg['all_student'] = all_student
        result = fileManager.write_json_file(user_name + '.json', user_msg)
        if result:
            print('ok')
            print('1.继续 2.返回')
            value = input('选择：')
            if value != '1':
                return
        else:
            print('failed')
            return


def find_student():
    # 读文件数据
    user_msg = fileManager.read_json_file(user_name + '.json')
    # 获取所有学生
    if not user_msg:
        all_student = []
    else:
        all_student = user_msg['all_student']
    if not all_student:
        print('该账号没有可以管理的学生')
        return
    print('1.查看所有学生 2.按姓名查找 3.按学号查找 其他：返回')
    value = input('请选择：')
    if value == '1':
        for stu in all_student:
            print(stu)
    elif value == '2':
        name = input('姓名：')
        count = 0
        for stu in all_student:
            if stu['name'] == name:
                count += 1
                print(stu)
        if count == 0:
            print('无该学生')
    elif value == '3':
        sid = input('学号：')
        for stu in all_student:
            if stu['sid'] == sid:
                print(stu)
                break
        else:
            print('无该生')
    else:
        return


def alter_student():
    # 读文件数据
    user_msg = fileManager.read_json_file(user_name + '.json')
    # 获取所有学生
    if not user_msg:
        all_student = []
    else:
        all_student = user_msg['all_student']
    if not all_student:
        print('该账号没有可以管理的学生')
        return
    # 输入学号
    sid = input('请输入需要修改的学生学号')
    for stu in all_student:
        if stu['sid'] == sid:
            print(stu)
            alter_stu = stu
            break
    else:
        print('无该生')
        return
    print('1.修改姓名 2.修改年龄 3.修改电话 其他：返回')
    value = input('选择：')
    if value == '1':
        new_name = input('新姓名:')
        alter_stu['name'] = new_name
    elif value == '2':
        new_age = input('新年龄：')
        alter_stu['age'] = new_age
    elif value == '3':
        new_tel = input('新电话：')
        alter_stu['tel'] = new_tel
    else:
        return
    # 更新数据
    result = fileManager.write_json_file(user_name + '.json', user_msg)
    if result:
        print('ok')
    else:
        print('failed')


def delete_student():
    # 读文件数据
    user_msg = fileManager.read_json_file(user_name + '.json')
    # 获取所有学生
    if not user_msg:
        all_student = []
    else:
        all_student = user_msg['all_student']
    if not all_student:
        print('该账号没有可以管理的学生')
        return
    # 输入学号
    sid = input('请输入需要修改的学生学号:')
    for stu in all_student:
        if stu['sid'] == sid:
            print('删除学生，学号：{}'.format(stu['sid']))
            all_student.remove(stu)
            print('删除成功')
            break
    else:
        print('无该生')
        return


def show_manager_page():
    page = fileManager.read_text_file('managerPage.txt')

    while 1:
        print(page % user_name)
        value = input('请选择（1-5）：')
        # 选择功能
        if value == '1':
            print('添加学生')
            add_student()
        elif value == '2':
            print('查看学生')
            find_student()
        elif value == '3':
            print('修改学生信息')
            return alter_student()
        elif value == '4':
            print('删除学生')
            return delete_student()
        elif value == '5':
            print('返回')
            return
        else:
            print('输入有误，请重新输入')


if __name__ == '__main__':
    pass
